perl中<STDIN>的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 18:32:18
程序如下:
#!/usr/bin/perl
@lines=<STDIN>;
chomp @lines;
$m=shift(@lines);
foreach(@lines){
printf"%$m\s\n",$_;
}
怎么把这个<STDIN>简写到foreach里面,为什么我简写里面会提示错误。
我简写后是:
#!/usr/bin/perl
$m=shift(@_);
foreach(chomp(<STDIN>)){
printf"%$m\s\n",$_;
}
错误信息如下:
Unrecognized escape \s passed through at 045.pl line 4.
Can't modify <HANDLE> in chomp at 045.pl line 3, near "<STDIN>)"
Execution of 045.pl aborted due to compilation errors.
我是在windows下。
可以看一下的没有简写的那个程序。。。。这个:
#!/usr/bin/perl
@lines=<STDIN>;
chomp @lines;
$m=shift(@lines);
foreach(@lines){
printf"%$m\s\n",$_;
}

#!/usr/bin/perl
$m=shift(@_);
while(<STDIN>){
chomp;
printf"%$m\s\n",$_;
}

chomp函数中只能接收variable或者list,因此它不能modify<HANDLE>
不加任何参数的chomp默认对$_进行操作